/*
 * Binance Spot WebSocket API
 *
 * OpenAPI Specifications for the Binance Spot WebSocket API
 *
 * API documents:
 * - [Github web-socket-api documentation file](https://github.com/binance/binance-spot-api-docs/blob/master/web-socket-api.md)
 * - [General API information for web-socket-api on website](https://developers.binance.com/docs/binance-spot-api-docs/web-socket-api/general-api-information)
 *
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

#![allow(unused_imports)]
use crate::spot::websocket_api::models;
use serde::{Deserialize, Deserializer, Serialize, de::Error};
use serde_json::Value;

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ExecutionReport {
    #[serde(rename = "E", skip_serializing_if = "Option::is_none")]
    pub e_uppercase: Option<i64>,
    #[serde(rename = "s", skip_serializing_if = "Option::is_none")]
    pub s: Option<String>,
    #[serde(rename = "c", skip_serializing_if = "Option::is_none")]
    pub c: Option<String>,
    #[serde(rename = "S", skip_serializing_if = "Option::is_none")]
    pub s_uppercase: Option<String>,
    #[serde(rename = "o", skip_serializing_if = "Option::is_none")]
    pub o: Option<String>,
    #[serde(rename = "f", skip_serializing_if = "Option::is_none")]
    pub f: Option<String>,
    #[serde(rename = "q", skip_serializing_if = "Option::is_none")]
    pub q: Option<String>,
    #[serde(rename = "p", skip_serializing_if = "Option::is_none")]
    pub p: Option<String>,
    #[serde(rename = "P", skip_serializing_if = "Option::is_none")]
    pub p_uppercase: Option<String>,
    #[serde(rename = "F", skip_serializing_if = "Option::is_none")]
    pub f_uppercase: Option<String>,
    #[serde(rename = "g", skip_serializing_if = "Option::is_none")]
    pub g: Option<i64>,
    #[serde(rename = "C", skip_serializing_if = "Option::is_none")]
    pub c_uppercase: Option<String>,
    #[serde(rename = "x", skip_serializing_if = "Option::is_none")]
    pub x: Option<String>,
    #[serde(rename = "X", skip_serializing_if = "Option::is_none")]
    pub x_uppercase: Option<String>,
    #[serde(rename = "r", skip_serializing_if = "Option::is_none")]
    pub r: Option<String>,
    #[serde(rename = "i", skip_serializing_if = "Option::is_none")]
    pub i: Option<i64>,
    #[serde(rename = "l", skip_serializing_if = "Option::is_none")]
    pub l: Option<String>,
    #[serde(rename = "z", skip_serializing_if = "Option::is_none")]
    pub z: Option<String>,
    #[serde(rename = "L", skip_serializing_if = "Option::is_none")]
    pub l_uppercase: Option<String>,
    #[serde(rename = "n", skip_serializing_if = "Option::is_none")]
    pub n: Option<String>,
    #[serde(rename = "N", skip_serializing_if = "Option::is_none")]
    pub n_uppercase: Option<String>,
    #[serde(rename = "T", skip_serializing_if = "Option::is_none")]
    pub t_uppercase: Option<i64>,
    #[serde(rename = "t", skip_serializing_if = "Option::is_none")]
    pub t: Option<i64>,
    #[serde(rename = "v", skip_serializing_if = "Option::is_none")]
    pub v: Option<i64>,
    #[serde(rename = "I", skip_serializing_if = "Option::is_none")]
    pub i_uppercase: Option<i64>,
    #[serde(rename = "w", skip_serializing_if = "Option::is_none")]
    pub w: Option<bool>,
    #[serde(rename = "m", skip_serializing_if = "Option::is_none")]
    pub m: Option<bool>,
    #[serde(rename = "M", skip_serializing_if = "Option::is_none")]
    pub m_uppercase: Option<bool>,
    #[serde(rename = "O", skip_serializing_if = "Option::is_none")]
    pub o_uppercase: Option<i64>,
    #[serde(rename = "Z", skip_serializing_if = "Option::is_none")]
    pub z_uppercase: Option<String>,
    #[serde(rename = "Y", skip_serializing_if = "Option::is_none")]
    pub y_uppercase: Option<String>,
    #[serde(rename = "Q", skip_serializing_if = "Option::is_none")]
    pub q_uppercase: Option<String>,
    #[serde(rename = "W", skip_serializing_if = "Option::is_none")]
    pub w_uppercase: Option<i64>,
    #[serde(rename = "V", skip_serializing_if = "Option::is_none")]
    pub v_uppercase: Option<String>,
    #[serde(rename = "d", skip_serializing_if = "Option::is_none")]
    pub d: Option<i64>,
    #[serde(rename = "D", skip_serializing_if = "Option::is_none")]
    pub d_uppercase: Option<i64>,
    #[serde(rename = "j", skip_serializing_if = "Option::is_none")]
    pub j: Option<i64>,
    #[serde(rename = "J", skip_serializing_if = "Option::is_none")]
    pub j_uppercase: Option<i64>,
    #[serde(rename = "A", skip_serializing_if = "Option::is_none")]
    pub a_uppercase: Option<String>,
    #[serde(rename = "B", skip_serializing_if = "Option::is_none")]
    pub b_uppercase: Option<String>,
    #[serde(rename = "u", skip_serializing_if = "Option::is_none")]
    pub u: Option<i64>,
    #[serde(rename = "U", skip_serializing_if = "Option::is_none")]
    pub u_uppercase: Option<i64>,
    #[serde(rename = "Cs", skip_serializing_if = "Option::is_none")]
    pub cs: Option<String>,
    #[serde(rename = "pl", skip_serializing_if = "Option::is_none")]
    pub pl: Option<String>,
    #[serde(rename = "pL", skip_serializing_if = "Option::is_none")]
    pub p_l: Option<String>,
    #[serde(rename = "pY", skip_serializing_if = "Option::is_none")]
    pub p_y: Option<String>,
    #[serde(rename = "b", skip_serializing_if = "Option::is_none")]
    pub b: Option<String>,
    #[serde(rename = "a", skip_serializing_if = "Option::is_none")]
    pub a: Option<i64>,
    #[serde(rename = "k", skip_serializing_if = "Option::is_none")]
    pub k: Option<String>,
    #[serde(rename = "uS", skip_serializing_if = "Option::is_none")]
    pub u_s: Option<bool>,
    #[serde(rename = "gP", skip_serializing_if = "Option::is_none")]
    pub g_p: Option<String>,
    #[serde(rename = "gOT", skip_serializing_if = "Option::is_none")]
    pub g_ot: Option<String>,
    #[serde(rename = "gOV", skip_serializing_if = "Option::is_none")]
    pub g_ov: Option<i64>,
    #[serde(rename = "gp", skip_serializing_if = "Option::is_none")]
    pub gp: Option<String>,
}

impl ExecutionReport {
    #[must_use]
    pub fn new() -> ExecutionReport {
        ExecutionReport {
            e_uppercase: None,
            s: None,
            c: None,
            s_uppercase: None,
            o: None,
            f: None,
            q: None,
            p: None,
            p_uppercase: None,
            f_uppercase: None,
            g: None,
            c_uppercase: None,
            x: None,
            x_uppercase: None,
            r: None,
            i: None,
            l: None,
            z: None,
            l_uppercase: None,
            n: None,
            n_uppercase: None,
            t_uppercase: None,
            t: None,
            v: None,
            i_uppercase: None,
            w: None,
            m: None,
            m_uppercase: None,
            o_uppercase: None,
            z_uppercase: None,
            y_uppercase: None,
            q_uppercase: None,
            w_uppercase: None,
            v_uppercase: None,
            d: None,
            d_uppercase: None,
            j: None,
            j_uppercase: None,
            a_uppercase: None,
            b_uppercase: None,
            u: None,
            u_uppercase: None,
            cs: None,
            pl: None,
            p_l: None,
            p_y: None,
            b: None,
            a: None,
            k: None,
            u_s: None,
            g_p: None,
            g_ot: None,
            g_ov: None,
            gp: None,
        }
    }
}
